home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / StringCompare.a < prev    next >
Text File  |  1996-05-01  |  17KB  |  570 lines

  1. ;
  2. ;    File:        StringCompare.a
  3. ;
  4. ;    Contains:    Public interfaces for String Comparison and related operations
  5. ;
  6. ;    Version:    Technology:    System 7.0 through System 8
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__STRINGCOMPARE__') = 'UNDEFINED' THEN
  19. __STRINGCOMPARE__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__TEXTCOMMON__') = 'UNDEFINED' THEN
  25.     include 'TextCommon.a'
  26.     ENDIF
  27.     IF &TYPE('__SCRIPT__') = 'UNDEFINED' THEN
  28.     include 'Script.a'
  29.     ENDIF
  30.     IF &TYPE('__TEXTOBJECTS__') = 'UNDEFINED' THEN
  31.     include 'TextObjects.a'
  32.     ENDIF
  33.     IF &TYPE('__LOCALEOBJECTS__') = 'UNDEFINED' THEN
  34.     include 'LocaleObjects.a'
  35.     ENDIF
  36.     IF &TYPE('__TEXTPARSER__') = 'UNDEFINED' THEN
  37.     include 'TextParser.a'
  38.     ENDIF
  39. ;
  40. ;
  41. ;    Here are the current System 7 routine names and the translations to the older forms.
  42. ;    Please use the newer forms in all new code and migrate the older names out of existing
  43. ;    code as maintenance permits.
  44. ;    
  45. ;    NEW NAME                    OLD NAME                    OBSOLETE FORM (no handle)
  46. ;    
  47. ;    CompareString (Str255)        IUCompPString (hp only)        IUCompString (hp only)
  48. ;    CompareText (ptr/len)        IUMagPString                IUMagString
  49. ;    IdenticalString (Str255)    IUEqualPString (hp only)    IUEqualString  (hp only)
  50. ;    IdenticalText (ptr/len)        IUMagIDPString                IUMagIDString
  51. ;    LanguageOrder                IULangOrder
  52. ;    ScriptOrder                    IUScriptOrder
  53. ;    StringOrder (Str255)        IUStringOrder (hp only)
  54. ;    TextOrder (ptr/len)            IUTextOrder
  55. ;
  56. ;    RelString
  57. ;    CmpString (a only)                    
  58. ;    EqualString (hp only)
  59. ;    
  60. ;    ReplaceText
  61. ;
  62. ;
  63.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  64.  
  65.                                                             ; Special language code values for Language Order
  66. systemCurLang                    EQU        -2                    ; current (itlbLang) lang for system script
  67. systemDefLang                    EQU        -3                    ; default (table) lang for system script
  68. currentCurLang                    EQU        -4                    ; current (itlbLang) lang for current script
  69. currentDefLang                    EQU        -5                    ; default lang for current script
  70. scriptCurLang                    EQU        -6                    ; current (itlbLang) lang for specified script
  71. scriptDefLang                    EQU        -7                    ; default language for a specified script
  72. ;  obsolete names
  73.  
  74. iuSystemCurLang                    EQU        -2
  75. iuSystemDefLang                    EQU        -3
  76. iuCurrentCurLang                EQU        -4
  77. iuCurrentDefLang                EQU        -5
  78. iuScriptCurLang                    EQU        -6
  79. iuScriptDefLang                    EQU        -7
  80.     ENDIF
  81. ;  FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  82.     IF FOR_SYSTEM8_PREEMPTIVE THEN
  83.  
  84.  
  85. ; typedef UInt8 *                        ConstBytePtr
  86.  
  87. ;  Collation object key names
  88. ;  Attribute names and values for CreateCollationRef
  89. ; typedef FourCharCode                     CollateUsageAttributeValue
  90.  
  91.  
  92. kCollateUsageDictionary            EQU        'dict'
  93. kCollateUsagePhoneDirectory        EQU        'phon'
  94. ; typedef FourCharCode                     CollateIdeoOrderAttributeValue
  95.  
  96.  
  97. kCollateIdeoOrderRadicalStroke    EQU        'rdst'
  98. kCollateIdeoOrderStrokeRadical    EQU        'strd'
  99. ;  Override types and enums
  100. CollationSet            RECORD 0
  101. charGroup                 ds.b    1                ; offset: $0 (0)
  102. charClass                 ds.b    1                ; offset: $1 (1)
  103. charSubclassMask         ds.w    1                ; offset: $2 (2)
  104. sizeof                     EQU *                    ; size:   $4 (4)
  105.                         ENDR
  106. ; typedef OptionBits                     CollateSetOptions
  107.  
  108.  
  109. kCollateMakeIgnorableBit        EQU        0
  110. kCollateSkipPreprocessingBit    EQU        1
  111. kCollateIgnoreAnnotationsBit    EQU        2
  112.  
  113. kCollateMakeIgnorableMask        EQU        $01
  114. kCollateSkipPreprocessingMask    EQU        $02
  115. kCollateIgnoreAnnotationsMask    EQU        $04
  116. CollationSetOptionSpec    RECORD 0
  117. charGroup                 ds.b    1                ; offset: $0 (0)
  118. charClass                 ds.b    1                ; offset: $1 (1)
  119. charSubclassMask         ds.w    1                ; offset: $2 (2)
  120. options                     ds.l    1                ; offset: $4 (4)
  121. sizeof                     EQU *                    ; size:   $8 (8)
  122.                         ENDR
  123. ; typedef OptionBits                     CollateNumberOptions
  124.  
  125.  
  126. kCollateNumbersByValueBits        EQU        0
  127. kCollateAllowThousandsSepBits    EQU        2
  128. kCollateMoreThousandsSepBit        EQU        4
  129. kCollateAllowIdeoNumbersBit        EQU        5
  130.  
  131. kCollateNumbersByValueMask        EQU        $03
  132. kCollateAllowThousandsSepMask    EQU        $0C
  133. kCollateMoreThousandsSepMask    EQU        $10
  134. kCollateAllowIdeoNumbersMask    EQU        $20
  135.  
  136.                                                             ; values for NumbersByValue subfield
  137. kCollateNumbersByValueUseLocale    EQU        0
  138. kCollateNumbersByValueNo        EQU        1
  139. kCollateNumbersByValueYes        EQU        2                    ; values for AllowThousands subfield
  140. kCollateAllowThousandsUseLocale    EQU        0
  141. kCollateAllowThousandsNo        EQU        1
  142. kCollateAllowThousandsYes        EQU        2                    ; values for MoreThousands subfield
  143. kCollateMoreThousandsUseLocale    EQU        0
  144. kCollateMoreThousandsSkipLocale    EQU        1                    ; values for AllowIdeoNumbers subfield
  145. kCollateAllowIdeoNumbersNo        EQU        0
  146. kCollateAllowIdeoNumbersYes        EQU        1
  147. ; typedef OptionBits                     CollateOptions
  148.  
  149.  
  150. kCollateStandardOptions            EQU        0
  151.  
  152.                                                             ; For determining equivalence, differences in encoding and between composed
  153.                                                             ; and decomposed characters are ignored (they are always significant for
  154.                                                             ; ordering, however). To change this use the following bits:
  155. kCollateEncodingSensitiveBit    EQU        8
  156. kCollateComposeSensitiveBit        EQU        9                    ; For determining equivalence, diacritics and case are normally significant.
  157.                                                             ; Use the following bits to change this.
  158. kCollateCaseInsensitiveBit        EQU        10
  159. kCollateDiacriticInsensitiveBit    EQU        11                    ; The following bits determine the ordering for the NoLocale functions only.
  160. kCollateNoLocaleOrderBits        EQU        24
  161.  
  162. kCollateEncodingSensitiveMask    EQU        $00000100
  163. kCollateComposeSensitiveMask    EQU        $00000200
  164. kCollateCaseInsensitiveMask        EQU        $00000400
  165. kCollateDiacriticInsensitiveMask EQU    $00000800
  166. kCollateNoLocaleOrderMask        EQU        $3F000000
  167.  
  168.                                                             ; values for NoLocaleOrder subfield
  169. kCollateMacHFSUnicodeCodeOrder    EQU        0                    ; HFS order for Mac encodings, code order for Unicode
  170. ;  collation value for GetCollationKeyForTextString
  171. ; typedef UInt32                         CollationValue
  172.  
  173. ; typedef SInt16                         CollateResult
  174.  
  175.     ENDIF
  176. ;  FOR_SYSTEM8_PREEMPTIVE
  177.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  178. ;
  179. ; The following functions are old names, but are required for System 7 PowerPC builds
  180. ; becuase InterfaceLib exports these names, instead of the new ones.
  181. ;
  182. ;
  183. ; pascal short IUMagPString(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  184. ;
  185.     IF ¨ GENERATINGCFM THEN
  186.         Macro
  187.         _IUMagPString
  188.             move.w              #$001A,-(sp)
  189.             dc.w                $A9ED
  190.         EndM
  191.     ELSE
  192.         IMPORT_CFM_FUNCTION IUMagPString
  193.     ENDIF
  194.  
  195. ;
  196. ; pascal short IUMagIDPString(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  197. ;
  198.     IF ¨ GENERATINGCFM THEN
  199.         Macro
  200.         _IUMagIDPString
  201.             move.w              #$001C,-(sp)
  202.             dc.w                $A9ED
  203.         EndM
  204.     ELSE
  205.         IMPORT_CFM_FUNCTION IUMagIDPString
  206.     ENDIF
  207.  
  208. ;
  209. ; pascal short IUTextOrder(const void *aPtr, const void *bPtr, short aLen, short bLen, ScriptCode aScript, ScriptCode bScript, LangCode aLang, LangCode bLang)
  210. ;
  211.     IF ¨ GENERATINGCFM THEN
  212.         Macro
  213.         _IUTextOrder
  214.             move.w              #$0022,-(sp)
  215.             dc.w                $A9ED
  216.         EndM
  217.     ELSE
  218.         IMPORT_CFM_FUNCTION IUTextOrder
  219.     ENDIF
  220.  
  221. ;
  222. ; pascal short IUScriptOrder(ScriptCode script1, ScriptCode script2)
  223. ;
  224.     IF ¨ GENERATINGCFM THEN
  225.         Macro
  226.         _IUScriptOrder
  227.             move.w              #$001E,-(sp)
  228.             dc.w                $A9ED
  229.         EndM
  230.     ELSE
  231.         IMPORT_CFM_FUNCTION IUScriptOrder
  232.     ENDIF
  233.  
  234. ;
  235. ; pascal short IULangOrder(LangCode language1, LangCode language2)
  236. ;
  237.     IF ¨ GENERATINGCFM THEN
  238.         Macro
  239.         _IULangOrder
  240.             move.w              #$0020,-(sp)
  241.             dc.w                $A9ED
  242.         EndM
  243.     ELSE
  244.         IMPORT_CFM_FUNCTION IULangOrder
  245.     ENDIF
  246.  
  247. ;
  248. ; pascal short CompareText(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  249. ;
  250.     IF ¨ GENERATINGCFM THEN
  251.         Macro
  252.         _CompareText
  253.             move.w              #$001A,-(sp)
  254.             dc.w                $A9ED
  255.         EndM
  256.     ELSE
  257.         IMPORT_CFM_FUNCTION CompareText
  258.     ENDIF
  259.  
  260. ;
  261. ; pascal short IdenticalText(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  262. ;
  263.     IF ¨ GENERATINGCFM THEN
  264.         Macro
  265.         _IdenticalText
  266.             move.w              #$001C,-(sp)
  267.             dc.w                $A9ED
  268.         EndM
  269.     ELSE
  270.         IMPORT_CFM_FUNCTION IdenticalText
  271.     ENDIF
  272.  
  273. ;
  274. ; pascal short TextOrder(const void *aPtr, const void *bPtr, short aLen, short bLen, ScriptCode aScript, ScriptCode bScript, LangCode aLang, LangCode bLang)
  275. ;
  276.     IF ¨ GENERATINGCFM THEN
  277.         Macro
  278.         _TextOrder
  279.             move.w              #$0022,-(sp)
  280.             dc.w                $A9ED
  281.         EndM
  282.     ELSE
  283.         IMPORT_CFM_FUNCTION TextOrder
  284.     ENDIF
  285.  
  286. ;
  287. ; pascal short LanguageOrder(LangCode language1, LangCode language2)
  288. ;
  289.     IF ¨ GENERATINGCFM THEN
  290.         Macro
  291.         _LanguageOrder
  292.             move.w              #$0020,-(sp)
  293.             dc.w                $A9ED
  294.         EndM
  295.     ELSE
  296.         IMPORT_CFM_FUNCTION LanguageOrder
  297.     ENDIF
  298.  
  299. ;
  300. ; The following functions are new names that are exported by InterfaceLib
  301. ; and work on both 68k and System 7 PowerPC.
  302. ;
  303. ;
  304. ; pascal short ScriptOrder(ScriptCode script1, ScriptCode script2)
  305. ;
  306.     IF ¨ GENERATINGCFM THEN
  307.         Macro
  308.         _ScriptOrder
  309.             move.w              #$001E,-(sp)
  310.             dc.w                $A9ED
  311.         EndM
  312.     ELSE
  313.         IMPORT_CFM_FUNCTION ScriptOrder
  314.     ENDIF
  315.  
  316. ;
  317. ; pascal short ReplaceText(Handle baseText, Handle substitutionText, Str15 key)
  318. ;
  319.     IF ¨ GENERATINGCFM THEN
  320.         Macro
  321.         _ReplaceText
  322.             move.l              #$820CFFDC,-(sp)
  323.             dc.w                $A8B5
  324.         EndM
  325.     ELSE
  326.         IMPORT_CFM_FUNCTION ReplaceText
  327.     ENDIF
  328.  
  329.     ENDIF
  330. ;  FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  331.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  332. ;
  333. ; pascal short IUMagString(const void *aPtr, const void *bPtr, short aLen, short bLen)
  334. ;
  335.     IF ¨ GENERATINGCFM THEN
  336.         Macro
  337.         _IUMagString
  338.             move.w              #$000A,-(sp)
  339.             dc.w                $A9ED
  340.         EndM
  341.     ELSE
  342.         IMPORT_CFM_FUNCTION IUMagString
  343.     ENDIF
  344.  
  345. ;
  346. ; pascal short IUMagIDString(const void *aPtr, const void *bPtr, short aLen, short bLen)
  347. ;
  348.     IF ¨ GENERATINGCFM THEN
  349.         Macro
  350.         _IUMagIDString
  351.             move.w              #$000C,-(sp)
  352.             dc.w                $A9ED
  353.         EndM
  354.     ELSE
  355.         IMPORT_CFM_FUNCTION IUMagIDString
  356.     ENDIF
  357.  
  358.     ENDIF
  359. ;  FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
  360.     IF FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE THEN
  361. ;
  362. ; pascal short RelString(ConstStr255Param str1, ConstStr255Param str2, Boolean caseSensitive, Boolean diacSensitive)
  363. ;
  364.     IF ¨ GENERATINGCFM THEN
  365.         _RelString:    OPWORD    $A050
  366.     ELSE
  367.         IMPORT_CFM_FUNCTION RelString
  368.     ENDIF
  369.  
  370. ;
  371. ; pascal short RelStringCase(ConstStr255Param str1, ConstStr255Param str2)
  372. ;
  373.     IF ¨ GENERATINGCFM THEN
  374.         _RelStringCase:    OPWORD    $A450
  375.     ELSE
  376.         IMPORT_CFM_FUNCTION RelStringCase
  377.     ENDIF
  378.  
  379. ;
  380. ; pascal short RelStringMarks(ConstStr255Param str1, ConstStr255Param str2)
  381. ;
  382.     IF ¨ GENERATINGCFM THEN
  383.         _RelStringMarks:    OPWORD    $A250
  384.     ELSE
  385.         IMPORT_CFM_FUNCTION RelStringMarks
  386.     ENDIF
  387.  
  388. ;
  389. ; pascal short RelStringMarksCase(ConstStr255Param str1, ConstStr255Param str2)
  390. ;
  391.     IF ¨ GENERATINGCFM THEN
  392.         _RelStringMarksCase:    OPWORD    $A650
  393.     ELSE
  394.         IMPORT_CFM_FUNCTION RelStringMarksCase
  395.     ENDIF
  396.  
  397. ;
  398. ; pascal short CmpString(ConstStr255Param aStr, ConstStr255Param bStr)
  399. ;
  400.     IF ¨ GENERATINGCFM THEN
  401.         _CmpString:    OPWORD    $A03C
  402.     ELSE
  403.         IMPORT_CFM_FUNCTION CmpString
  404.     ENDIF
  405.  
  406. ;
  407. ; pascal short CmpStringCase(ConstStr255Param aStr, ConstStr255Param bStr)
  408. ;
  409.     IF ¨ GENERATINGCFM THEN
  410.         _CmpStringCase:    OPWORD    $A43C
  411.     ELSE
  412.         IMPORT_CFM_FUNCTION CmpStringCase
  413.     ENDIF
  414.  
  415. ;
  416. ; pascal short CmpStringMarks(ConstStr255Param aStr, ConstStr255Param bStr)
  417. ;
  418.     IF ¨ GENERATINGCFM THEN
  419.         _CmpStringMarks:    OPWORD    $A23C
  420.     ELSE
  421.         IMPORT_CFM_FUNCTION CmpStringMarks
  422.     ENDIF
  423.  
  424. ;
  425. ; pascal short CmpStringMarksCase(ConstStr255Param aStr, ConstStr255Param bStr)
  426. ;
  427.     IF ¨ GENERATINGCFM THEN
  428.         _CmpStringMarksCase:    OPWORD    $A63C
  429.     ELSE
  430.         IMPORT_CFM_FUNCTION CmpStringMarksCase
  431.     ENDIF
  432.  
  433.     ENDIF
  434. ;  FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
  435.     IF FOR_SYSTEM8_PREEMPTIVE THEN
  436. ;
  437. ; extern OSStatus CreateCollationRef(LocaleObjectRef collMasterObject, LocaleRef locale, ItemCount countPairs, const NameValuePair *pairs, CollationRef *newCollationRef)
  438. ;
  439.     IF GENERATINGCFM THEN
  440.         IMPORT_CFM_FUNCTION CreateCollationRef
  441.     ENDIF
  442.  
  443. ;
  444. ; extern OSStatus ChangeCollationRef(CollationRef collationRef, LocaleObjectRef collMasterObject, LocaleRef locale, ItemCount countPairs, const NameValuePair *pairs)
  445. ;
  446.     IF GENERATINGCFM THEN
  447.         IMPORT_CFM_FUNCTION ChangeCollationRef
  448.     ENDIF
  449.  
  450. ;
  451. ; extern OSStatus OverrideCollationSetOrder(CollationRef collationRef, ItemCount setCount, CollationSet setList[2147483647])
  452. ;
  453.     IF GENERATINGCFM THEN
  454.         IMPORT_CFM_FUNCTION OverrideCollationSetOrder
  455.     ENDIF
  456.  
  457. ;
  458. ; extern OSStatus OverrideCollationSetOptions(CollationRef collationRef, ItemCount specCount, CollationSetOptionSpec specList[2147483647])
  459. ;
  460.     IF GENERATINGCFM THEN
  461.         IMPORT_CFM_FUNCTION OverrideCollationSetOptions
  462.     ENDIF
  463.  
  464. ;
  465. ; extern OSStatus OverrideCollationNumberHandling(CollationRef collationRef, CollateNumberOptions numberOptions, ItemCount tokenCount, BasicToken tokenList[2147483647])
  466. ;
  467.     IF GENERATINGCFM THEN
  468.         IMPORT_CFM_FUNCTION OverrideCollationNumberHandling
  469.     ENDIF
  470.  
  471. ;
  472. ; extern OSStatus DisposeCollationRef(CollationRef *collationRef)
  473. ;
  474.     IF GENERATINGCFM THEN
  475.         IMPORT_CFM_FUNCTION DisposeCollationRef
  476.     ENDIF
  477.  
  478. ;
  479. ; extern OSStatus GetCollationKeyForTextObject(CollationRef collationRef, ConstTextObject textObject, CollateOptions options, ItemCount maxCollationValues, ItemCount *actualCollationValues, CollationValue collationKey[2147483647])
  480. ;
  481.     IF GENERATINGCFM THEN
  482.         IMPORT_CFM_FUNCTION GetCollationKeyForTextObject
  483.     ENDIF
  484.  
  485. ;
  486. ; extern OSStatus GetCollationKeyForTextString(CollationRef collationRef, ConstBytePtr textPtr, ByteCount textLength, TextEncoding textEncoding, CollateOptions options, ItemCount maxCollationValues, ItemCount *actualCollationValues, CollationValue collationKey[2147483647])
  487. ;
  488.     IF GENERATINGCFM THEN
  489.         IMPORT_CFM_FUNCTION GetCollationKeyForTextString
  490.     ENDIF
  491.  
  492. ;
  493. ; extern OSStatus CollateTextObjects(CollationRef collationRef, ConstTextObject textObject1, ConstTextObject textObject2, CollateOptions options, CollateResult *weakOrder, CollateResult *strictOrder)
  494. ;
  495.     IF GENERATINGCFM THEN
  496.         IMPORT_CFM_FUNCTION CollateTextObjects
  497.     ENDIF
  498.  
  499. ;
  500. ; extern OSStatus CollateTextStrings(CollationRef collationRef, ConstBytePtr textPtr1, ByteCount textLength1, TextEncoding textEncoding1, ConstBytePtr textPtr2, ByteCount textLength2, TextEncoding textEncoding2, CollateOptions options, CollateResult *weakOrder, CollateResult *strictOrder)
  501. ;
  502.     IF GENERATINGCFM THEN
  503.         IMPORT_CFM_FUNCTION CollateTextStrings
  504.     ENDIF
  505.  
  506. ;
  507. ; extern OSStatus EquivalentTextObjects(CollationRef collationRef, ConstTextObject textObject1, ConstTextObject textObject2, CollateOptions options, Boolean *equivalent)
  508. ;
  509.     IF GENERATINGCFM THEN
  510.         IMPORT_CFM_FUNCTION EquivalentTextObjects
  511.     ENDIF
  512.  
  513. ;
  514. ; extern OSStatus EquivalentTextStrings(CollationRef collationRef, ConstBytePtr textPtr1, ByteCount textLength1, TextEncoding textEncoding1, ConstBytePtr textPtr2, ByteCount textLength2, TextEncoding textEncoding2, CollateOptions options, Boolean *equivalent)
  515. ;
  516.     IF GENERATINGCFM THEN
  517.         IMPORT_CFM_FUNCTION EquivalentTextStrings
  518.     ENDIF
  519.  
  520. ;
  521. ; extern OSStatus FindInTextObject(CollationRef collationRef, ConstTextObject baseText, TextObjectIndex baseStartIndex, TextObjectIndex baseEndIndex, ConstTextObject pattern, TextObjectIndex patStartIndex, TextObjectIndex patEndIndex, CollateOptions options, TextObjectIndex *foundStartIndex, TextObjectIndex *foundEndIndex)
  522. ;
  523.     IF GENERATINGCFM THEN
  524.         IMPORT_CFM_FUNCTION FindInTextObject
  525.     ENDIF
  526.  
  527. ;
  528. ; extern OSStatus FindInTextString(CollationRef collationRef, ConstBytePtr baseText, ByteCount baseLength, TextEncoding baseEncoding, ByteOffset baseStartIndex, ByteOffset baseEndIndex, ConstBytePtr patText, ByteCount patLength, TextEncoding patEncoding, ByteOffset patStartIndex, ByteOffset patEndIndex, CollateOptions options, ByteOffset *foundStartIndex, ByteOffset *foundEndIndex)
  529. ;
  530.     IF GENERATINGCFM THEN
  531.         IMPORT_CFM_FUNCTION FindInTextString
  532.     ENDIF
  533.  
  534. ;
  535. ; extern OSStatus SubstituteInTextObject(CollationRef collationRef, TextObject baseText, TextObjectIndex startIndex, TextObjectIndex endIndex, ConstTextObject substText, ConstTextObject pattern, CollateOptions options)
  536. ;
  537.     IF GENERATINGCFM THEN
  538.         IMPORT_CFM_FUNCTION SubstituteInTextObject
  539.     ENDIF
  540.  
  541. ;
  542. ; Locale-insensitive utilities for text objects
  543. ; For internal, user-invisible behavior thay must remain invariant across different systems
  544. ;
  545. ;
  546. ; extern OSStatus CollateTextObjectsNoLocale(ConstTextObject textObject1, ConstTextObject textObject2, CollateOptions options, CollateResult *weakOrder, CollateResult *strictOrder)
  547. ;
  548.     IF GENERATINGCFM THEN
  549.         IMPORT_CFM_FUNCTION CollateTextObjectsNoLocale
  550.     ENDIF
  551.  
  552. ;
  553. ; extern OSStatus EquivalentTextObjectsNoLocale(ConstTextObject textObject1, ConstTextObject textObject2, CollateOptions options, Boolean *equivalent)
  554. ;
  555.     IF GENERATINGCFM THEN
  556.         IMPORT_CFM_FUNCTION EquivalentTextObjectsNoLocale
  557.     ENDIF
  558.  
  559. ;
  560. ; extern OSStatus FindInTextObjectNoLocale(ConstTextObject baseText, TextObjectIndex baseStartIndex, TextObjectIndex baseEndIndex, ConstTextObject pattern, TextObjectIndex patStartIndex, TextObjectIndex patEndIndex, CollateOptions options, TextObjectIndex *foundStartIndex, TextObjectIndex *foundEndIndex)
  561. ;
  562.     IF GENERATINGCFM THEN
  563.         IMPORT_CFM_FUNCTION FindInTextObjectNoLocale
  564.     ENDIF
  565.  
  566.     ENDIF
  567. ;  FOR_SYSTEM8_PREEMPTIVE
  568.     ENDIF ; __STRINGCOMPARE__ 
  569.  
  570.